1 /*
2  * Collie - An asynchronous event-driven network framework using Dlang development
3  *
4  * Copyright (C) 2015-2017  Shanghai Putao Technology Co., Ltd 
5  *
6  * Developer: putao's Dlang team
7  *
8  * Licensed under the Apache-2.0 License.
9  *
10  */
11 module collie.codec.http.server.httpserveroptions;
12 
13 import collie.codec.http.codec.httpcodec;
14 import collie.codec.http.httpmessage;
15 import collie.codec.http.httptansaction;
16 import collie.codec.http.server.requesthandler;
17 import kiss.container.Vector;
18 import std.socket;
19 
20 version(USE_SSL){
21 	import collie.bootstrap.serversslconfig;
22 }
23 
24 
25 class HTTPServerOptions
26 {
27 	alias RequestHandlerFactory = RequestHandler delegate(RequestHandler,HTTPMessage);
28 	alias HTTPCodecFactory = HTTPCodec delegate(string,TransportDirection);
29 
30 	this(){
31 	}
32 
33 	size_t threads = 1;
34 
35 	RequestHandlerFactory[] handlerFactories;
36 
37 	size_t timeOut = 30;// seconds
38 
39 	uint listenBacklog = 1024;
40 
41 	size_t maxHeaderSize = 60 * 1024;
42 
43 	version(USE_SSL){
44 		ServerSSLConfig ssLConfig;
45 	}
46 
47 	struct IPConfig
48 	{
49 		Address address;
50 		//HTTPCodecFactory codecFactory = null;
51 		//Protocol protocol;
52 		bool enableTCPFastOpen = false;
53 		uint fastOpenQueueSize = 10000;
54 	}
55 }
56